package com.itheima.exception;


import cn.hutool.core.util.ReUtil;
import com.itheima.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler {

    // @ExceptionHandler
    // public Result doException(Exception ex) {
    //     log.error("异常信息：ex={}",ex.getMessage());
    //     return Result.error("系统正在维护中，请稍后访问，么么哒(>^ω^<).....");
    // }

    //处理添加到表中字段重复的异常
    @ExceptionHandler   //表示该方法是一个处理异常的方法，默认处理形参类型及其子类类型的异常
    public Result doException(DuplicateKeyException ex){
        log.error("异常信息：ex={}",ex.getMessage());
        //提出重复的数据（手机号、用户名）
        String message = ReUtil.getGroup0("'\\w*'", ex.getMessage());
        return Result.error(message+"重复了...");
    }

    @ExceptionHandler
    public Result doException(CustomerExceptionHandler ex){
        log.error("异常信息ex={}",ex.getMessage());
        return Result.error(ex.getMessage());
    }
}
